Событие - Юнит получает предмет.
Условие - Тип предмета (предмет, которым манипулируют) = меч.
Действие - Цикл А от 1 до 6:
Если тип предмета, переносимого Триггерным юнитом в слоте А = меч И предмет в слоте А не равно предмет, которым манипулируют, то Герой - Выбросить предмет из слота А.
Если у вас классовые (мечи и топоры, щиты, доспехи и др). То можно разделить по уровням (уровни итемов вообще нигде не используется), например 1 уровень = мечи топоры копья и др оружия. 2уровень = доспехи 3 уровень = щиты ну и др. Можно будет проверять по уровням.
вот
VVelikolepniy:
Для удобства. Если его нет, добавь этот код:
function HandleCounter_Update takes nothing returns nothing
local integer i = 0
local integer id
local location array P
local real result=0
loop
exitwhen i >= 50
set i = i + 1
set P[i] = Location(0,0)
set id = GetHandleId(P[i])
set result = result + (id-0x100000)
endloop
set result = result/i-i/2
loop
call RemoveLocation(P[i])
set P[i] = null
exitwhen i <= 1
set i = i - 1
endloop
call LeaderboardSetItemValue(udg_HandleBoardH,0,R2I(result))
endfunction
function HandleCounter_Actions takes nothing returns nothing
set udg_HandleBoardH = CreateLeaderboard()
call LeaderboardSetLabel(udg_HandleBoardH, "Счетчик")
call PlayerSetLeaderboard(GetLocalPlayer(),udg_HandleBoardH)
call LeaderboardDisplay(udg_HandleBoardH,true)
call LeaderboardAddItem(udg_HandleBoardH,"Хэндлы",0,Player(0))
call LeaderboardSetSizeByItemCount(udg_HandleBoardH,1)
call HandleCounter_Update()
call TimerStart(GetExpiredTimer(),0.05,true,function HandleCounter_Update)
endfunction
function InitTrig_HandleCounter takes nothing returns nothing
call TimerStart(udg_TimerH,0,false,function HandleCounter_Actions)
endfunction
И создай переменную таймер с именем TimerH, и переменную таблицы лидеров с именем HandleBoardH
потом инициируй функцию InitTrig_HandleCounter
что бы она сразу перешла в режим наведения.. а то выглядит как баг, из-за которого надо нажимать по 2 раза...
Gui -> Force player to use X key
Согласовываешь с хоткеем строительства ======================================
Бафф имеется в виду Бафф или Спецэффект?
Если спецэффект:
Если первый кадр анимации правильный, попробуйте удалить последний кадр анимации, потом скопировать кадр в её начале (Именно через команду "Кадры" - "Копировать (Ctrl + C)" !) и вставить его в конец. То же самое проделать с другой анимацией (Stand 2). Если это не поможет, тогда надо детально смотреть саму модель, что с ней не так. И ещё советую сохранять промежуточные версии модели, чтоб можно было сделать "откат", если возникнут ошибки.
IGOREIK, там четыре события на применение способности.
Пробуй разные, выбери, какое подойдёт лучше.
Вариант 8gabriel8 лучше. Немного дополню. Можно найти модель спецэффекта, который применяется во время включения способности. Посмотреть редакторами моделей (War3ME, например), какой там звук используется. И прописать импортированному звуку этот путь.
The Dude, это несерьезно. Все вопросы описаны в большом количестве статей здесь, на нашем сайте - xgm.guru/p/wc3/articles. То, что перечисляешь не верх мастерства WE, а базовые знания. Материалов предостаточно. Успехов в обучении.
RedLegion, Эмм опен лтд в помощь, в гугле бан дали?
Утечек небудет если не юзать ГУИ, а сам процесс смены там примитивен - сокрытие всех юнитов игрока в области где доступно строительсво и создание ходящих и аьакующих аналогов, каждую новую волну. Прочее типо Ии, таблицы, способностей крипов реализуются по вкусу. В оригинальном лтд код не шибко крут, с утечками и ГУИ, но работает.
скорее всего это
UI\Widgets\EscMenu\раса\раса-options-button-background-down.blp
UI\Widgets\EscMenu\раса\раса-options-button-background.blp
и подсветка кнопки
UI\Widgets\EscMenu\раса\раса-options-button-highlight.blp
не стоит использовать ждать
создаём для юнита целочисленную переменную time
1 триггер
Событие
периодическое событие - каждые 0.1 сек.-
Условие
time > 0
Действие
set time = time - 1
если time == 0 то понизить уровень способности "незаметность" для "герой" до 1
2 триггер
Событие
боевая единица - юнит атакован
Условие
Атакующий юнит=герой или Атакованный юнит=герой
Действие
set time=30
боевая единица - повысить уровень способности "незаметность" для "герой" до 2
не забудь закрыть вопрос (для этого выбери лучший ответ)
а почему так? отравленное оружие настраивает на сколька понизить в %. а сколько не ставь, все одно. мб что-то не правильное. абилка что ли бракованная
все врубился, понял формулу: скорость = Текущая скорость - (Текущая скорость * процент снижения)
слишком большие проценты ставил, в результате не видел, и выходило ниже скорость. А так как стоят ограничения в скорости (мин = 150, макс = 400 в константах), то упиралась в минималку, и не видел изменения, из-за чего ошибочно начал теории строить.
в абилках "отравленное оружие" и "яд" дриады - поля "Данные - Фактор скорости атаки" и "Данные - Фактор скорости перемещения" - перепутаны, в "фактор скорости атаки" указывают понижение в процентах скорости движения, а в "фактор скорости перемещения" указывают понижение в процентах скорости атаки .
Отравленное оружие 'Aven'/'ACvs'/Яд 'Aspo' - Buff Placer, позволяющая замедлять противника при атаке, и наносить ему урон каждую секунду. При атаке накидывает на противника дебафф (яд). Этот дебафф остается на противнике несколько секунд, повторная атака ядом продлевает длительность дебаффа. Этот дебафф наносит ежесекундный урон, и понижает скорости атак, движения. Характеристики:
"Данные - Урона в секунду" - ежесекудно наносит урона.
ВНИМАНИЕ: поля "Данные - Фактор скорости атаки" и "Данные - Фактор скорости перемещения" - перепутаны, в "фактор скорости атаки" указывают понижение в процентах скорости движения, а в "фактор скорости перемещения" указывают понижение в процентах скорости атаки (1.00 = 100%, 0.5 = 50%, 1.5 = 150%, 100% или 0% - не будет понижать). Понижение скорости идет по формуле: скорость = текущая скорость - (текущая скорость * процент понижения).
раскрыть
скорость движения юнита меняется от текущей скорости, и может упереться в ограничение установленных констант (мин = 150, макс = 400, если будет ниже скажем 100, то автоматом игра подправляет на 150). Скорость атаки изначально равняется 1 (100%), может по такой же формуле снижаться. например, снижение на 0.3. 1-(1*0.3)=0.7 - скорость атаки. или можно просто вычесть 1-0.3=0.7
У отравленного оружия есть два типа дебаффа: "Яд (не буферизуется)", "Яд (буферизуется)". Что это значит? Буферизация связана с настройкой "Тип буфера" (Тип буфера: здесь можно указать несколько галочек, всего их 4: "Урон" - суммирует ли ежесекудный эффект отравление, "Скорость боя" - удваивается ли коэффициент-множитель от скорости атаки (будет в несколько раз больше снижена скорость боя врага), "Движение" - удваивается ли коэффициент-множитель от скорости движения (будет в несколько раз понижена скорость противника), "Убить юнита" - при отравлении, типа может убить ядом). Эффекты от буфера складываются не повторной атакой одного юнита, а двух юнитов (если второй юнит с такой же абилкой нанесет атаку, то будут складываться эффекты). При буферизации урон суммируется, и коэффициенты скоростей складываются. Ежесекундный урон от отравления относится к типу атаки "заклинание", не понижается защитой, можно отнести к магическому урону
Анихак лаунчер заточен под борьбу с картой лича, поэтому не дает запускать все карты с мемхаком, пока есть возможноть это обойти - моя карта яркий пример, а так инфы подробной в паблик никто не сливал чтобы ракап не сделал апгрейд защиты...
Я сам разобрался с проблемой. Конечно тут две новые появились, но на них забью уже:
ИИ не нравился герой, из-за него вообще никто не нанимался.
ИИ посчитал, что улучшив главное здание, он лишается главного здания, а значит нужно его снова строить. То есть, например, улучшив ратушу до крепости, он считает, что ратуши больше нет и необходимо построить ещё одну. Потом он крепость улучшит до замка, посчитает, что разрушили крепость, улучшит до крепости ратушу№2, снова потеряет ратушу и построит уже третью.
Карта со всеми утечками и описанием их.
Вместо проклятия банши можно юзать туман(не рекоменд) или безмолвие(там есть вроде бы шанс промаха).
Ещё можно сделать ауру на основе пламени феникса, которое действует на своих.
Юнит повреждён
урон меньше 1
источник - союзный герой
дать уклонение
вейт/таймер
убрать уклонение если триг юнит не имеет баффа пламени(длительность регулируем)
1
Может, все дело в переменных? Попробуй в настройках поставить галочку копировать переменные вместе с триггерами или, если не сработает для твоего глючного редактора, попробуй скопировать переменные вручную перед триггерами.
Я ловлю фаталы в своей кампании каждое 10 сохранение и переделываю утраченный прогресс каждый раз на протяжении последних 3 лет разработки. Не говори о том, как тебе будет сложно переделывать все заново. Не делал резервные копии - сам виноват. Теперь будешь делать.
А по факту ты не залил карту
И да, через любой mpq можно вытащить карту из файла кампании
нужно на время дать этому юниту способность "превратится в ворона", тогда он будет менять высоту триггерно.
Увы не работает, можно проиграть анимацию из раздела "Sea" (есть у юнитов анфибий), тогда они утопнут в грунте будто в воде, но увы не у всех моделей есть такое свойство, ну либо делать у модели вашего героя анимацию проваливания под землю.
koloff:
Объявляются переменные в начале.
local lightning l
call AddLightningEx(codeName, true, GetLocationX(where1), GetLocationY(where1), GetLocationZ(where1), GetLocationX(where2), GetLocationY(where2), GetLocationZ(where2))
set l = bj_lastCreatedLightning
способ 1
вешать структуру на таймер с помощью эксплойта (для тех кто не знает структура это число) а потом этим таймером вызывать нужную функцию спустя 0 секунд
плюсы:
простота
минусы:
требует добавлять иф на каждую новую функцию
второй способ
тоже самое что и 1 только на таймер вешается вдобавок название функции и таймер вызывает её экзекутом
вот моя библиотека по 2 способу и карта с примером
в библиотеке в самом верху есть небольшой док по 3 функциям
Возможно, по средству скрещивания через триггер, видел в близовской карте Хеллоуин! Это что то типо ДОТЫ, только от близзард, есть по умолчанию в любом варике, старше версии 1.18. Легко открывается, триггер можно перезалить в свою карту.
Про области хз, вот именно их разве не через БД лучше, я же не знаю, как в создаваемой карте они называются - Пещера Тысячи Всхлипов или Пляж Огненных Уток...
Тут просто при входе в область писать ее при событии unit входит в область такую-то, легко же вроде даже на гуи...
А так атака ловится через GetUnitBaseDamage сложить с GetUnitGreenBonusDamage.
Скорость атаки через GetUnitAttackSpeed.
Броня через GetUnitArmor (я, правда, пока не мемхаковской пользуюсь, а другой, влом искать, но опытные мапмейкеры знают, если надо - спросить можно).
хпрег через GetUnitHPRegen + мб БД свое.
Мпрег через GetUnitMPRegen + мб БД свое.
Функции эти все тут github.com/DracoL1ch/WC3Memory/blob/master/war3map.j
По импорту мемхака все тут
VovkaShyt, будет, хоть 10 хоть 0,01 будет снижаться количеством брони, а эти параметры - снижение от типа брони, сила тьмы игнорирует тип брони, а вот атака героя не игнорирует тип защиты зданий, здания, вспомните как долго в мили картах ломаются здания.
Пушистый, создал и удалил 100к юнитов
результат счётчика 1100
на всякий случай сообщу что 1100 меньше чем 100к
так же не стоит забывать что вар тупит с большими сериями (если подряд создаётся/удаляется много объектов)
и начинает добавлять после последнего удалённого хэндла хотя предыдущие свободны и не занимают память
при следующей пересборке таблицы это проходит
для того чтобы счётчик адекватно реагировал на это надо чтобы размер серии счётчика был больше чем размер серии создаваемых объектов
я слегка модифицировал твой счётчик
globals
leaderboard udg_HandleBoard = null
endglobals
define sizehc=300;
function HandleCounter_Update takes nothing returns nothing
local integer i = 0
local integer id
local location array P
local integer result=0
local integer min=-1;
loop
exitwhen i >= sizehc
set i = i + 1
set P[i] = Location(0,0)
set id = GetHandleId(P[i])
id-=0x100000
if(min==-1){
min=id;
}
if(id>result){
result=id;
elseif(id<min)
min=id;
}
endloop
if(result-min>sizehc){
result=min;
else
result-=sizehc
}
loop
call RemoveLocation(P[i])
set P[i] = null
exitwhen i <= 1
set i = i - 1
endloop
call LeaderboardSetItemValue(udg_HandleBoard,0,result)
endfunction
function HandleCounter_Actions takes nothing returns nothing
set udg_HandleBoard = CreateLeaderboard()
call LeaderboardSetLabel(udg_HandleBoard, "Handle Counter")
call PlayerSetLeaderboard(GetLocalPlayer(),udg_HandleBoard)
call LeaderboardDisplay(udg_HandleBoard,true)
call LeaderboardAddItem(udg_HandleBoard,"Handles",0,Player(0))
call LeaderboardSetSizeByItemCount(udg_HandleBoard,1)
call HandleCounter_Update()
call TimerStart(GetExpiredTimer(),0.1,true,function HandleCounter_Update)
endfunction
function InitTrig_HandleCounter takes nothing returns nothing
call TimerStart(CreateTimer(),0,false,function HandleCounter_Actions)
endfunction
у меня создаётся и удаляется более 2к юнитов сериями по 200
длинна серии счётчика задаётся в sizehc (в моём случае это 300)
вот триггер создания юнитов
function Trigcru takes nothing returns nothing
local unit u= CreateUnit(Player(0),'hfoo',0,0,0)
call RemoveUnit(u)
set u=null
endfunction
function Trigcrul takes nothing returns nothing
local integer i=0
loop
call Trigcru()
exitwhen i==200
set i=i+1
endloop
endfunction
function Trig___________________________u_Actions takes nothing returns nothing
local integer i=0
loop
call Trigcrul()
call TriggerSleepAction(0.1)
call DisplayTextToPlayer(GetLocalPlayer(),0,0,I2S(i))
exitwhen i==10
set i=i+1
endloop
set i=0
call DisplayTextToPlayer(GetLocalPlayer(),0,0,"end")
call TriggerSleepAction(1)
endfunction
//===========================================================================
function InitTrig___________________________u takes nothing returns nothing
set gg_trg___________________________u = CreateTrigger( )
call TriggerRegisterTimerEventSingle( gg_trg___________________________u, 2 )
call TriggerAddAction( gg_trg___________________________u, function Trig___________________________u_Actions )
endfunction
Линейная интерполяция не делает вещи плавнее. Это равномерная интерполяция, линейная, так не движутся "живые" персонажи. За "плавностью" к Безье или Эрмиту. xgm.guru/p/wc3/anims-a-ya-3
А по поводу темы топика - могу обратить внимание автора на:
Менял ли ты структуру исходного скелета, делая новую анимацию (имею ввиду только исходные кости, например, кость головы.)? Если да, то как?
Попробуй посмотреть, что у тебя с интерполяцией для вращения по нужной оси на рутовом объекте.
ии я очень сложный замутил 4х ступенчатый (не для босов)так как при строительстве его я думал что движок будет пулять спеллы,его придёться переписывать,но я нашел решение если за моба стоит комп то спелы во вкладке нейтрально посивные он будет юзать но не все главное условие чтобы был комп назначен
Такой стандартной способности нет, которую ты хочешь. Её можно лишь сделать путём канального заклятию со щепоткой JASS'а. По другому никак, если только Blizzard Ent. не запилят такую способность, или что-то намудрят с каналом, что вряд-ли будет.
Короче порылся в ХГМ, потыкал, все испробывал, и сам нашел ответ, вот несколько моментов для того, чтобы заработал:
Требуется установленный Warcraft 3: The Frozen Throne последней версии 1.26a. Скачайте нормальный варкрафт 3, а то попадаются урезанные или нерабочие версии. Лучше оригинальную версии приобрести, и обновить. Хотя пиратки тоже неплохи. Вот использую сборкой от R.G. Mechanics
Путь к программе НЕ ДОЛЖЕН содержать русских символов
Совершайте установку в отдельную от Warcraft 3 папку
Рекомендуется приостановить антивирусные программы до установки, потом выполнить установку, затем добавить папку c JNGP в исключения, и потом только снова включить антивирусы. Эта программа вторгается в процесс worldedit.exe, поэтому может считаться вредоносной
Не трогайте файл worldedit121.exe, он должен быть и в папке игры и в папке JNGP
Сначала "Сохранить карту", только потом "Проверка карты", а ещё иногда бывает лучше сохранять пару раз
Выше, это стандартное описание для работы. Если не сработает, пробуем вот, что:
Выставляем оптимальные настройки к JNGP, указанные на скрине (см. ссылку) xgm.guru/forum/showthread.php?t=13118 Обычно, эти настройки должны быть изначально после установки JNGP (ну мало ли пригодятся)
Теперь суть моей проблемы (не знаю, что из этих ниже пунктов сработало, но сработало):
Я установил игру и JNGP на рабочий стол. Потому что на диске С, в папках типа Program Files.(x86) и др. блокирует браундмер. Обычно требует назойливо для работы права администратора, очень раздражает. Но сомневаюсь, что заработало из-за этого. Раньше не мешало нисколько.
Запустить JNGP в режим совместимости. Заходим в свойство exe-шника. Поставил семерку.
Если UMS изначально включен, то выключить его и включить (Enable UMS). Потом перезапустить WE. Скорее всего из-за него.
Из-за UMS также бывают ошибки: могут выскачить 2-3 окна : что отсутствует TriggerClearActions и layerAll. Когда пропускаешь эти окна, просто нажав на ок, затем появляется ошибка с памятью и уже потом закрывается редактор. Происходят такие ошибки, если пытаешься открыть обычным редактором карту, отредактированную в JNGP. Такая ошибка происходит, если некорректно настроен UMS (выкл. потом вкл.). Такая ошибка происходит, если открыть обычным редактором взломанную карту, которая наверняка сделана в UMS и использует необычный jass и прочие преимущества JNGP. Ошибки с UMS могут иногда происходить, поэтому скорее всего пункт 10 поможет
Если UMS перестает работать (некорректно работает), а 10 пункт не помогает. То есть плагин UMS по каким-то причинам не запускается, а JNGP стоит галочка напротив UMS (говорит, что включен). Короче узнать, что он запущен, можно при открытий редактора вместо стандартного окна выскакивает окно UMS. Если не выскакивает, надо попробовать завести снова работать. Плагин может по каким-то причинам сломаться (один раз баловался в настройках JNGP). Пробуйте потом удалить JNGP и потом заново переустановить. Или выкл. и вкл, UMS затем выйти из jngp, удалить и заново переустановить
Параметры стака ядов с одним и тем же баффом, это нужно чтобы складывались замедлени и\или урон от разных юнитов, или бафф тупо обновлялся.
С одним из параметров яды с разными баффами скатаются независимо, каждый вешает свой бафф. (годная основа для замедляющих способностей)
А игра вылетает из за зацикливания, темболее бафф при удалении и появлении наносит 0.00 ед урона, это так для справки.
А что не понятного? Крашится при уничтожении базы красного, значит перелопать код, который отсится к базе или вообще к красному игроку хоть как-то. Что сложного то?
PyCCKuu_4eJl, а причем тут аура торнадо? Если стан это стан, особый флаг + приказ смотреть на источник стана.
Не пойму почему не молоток бурь а аура торнадо?
» WarCraft 3 / Подскажите триггер
» WarCraft 3 / Видимость через декорацию
» WarCraft 3 / Баги при создании модели
» WarCraft 3 / Не работают mix файлы
» WarCraft 3 / Предметы только для определенных игроков.
» WarCraft 3 / Редактор объектов World Editor
» WarCraft 3 / Постройка в области
» WarCraft 3 / Где находится текстура кнопки?
» WarCraft 3 / Снижается скорость атаки
» WarCraft 3 / Nwu в Iccup
» WarCraft 3 / Проблема в редакторе кампаний 2
» WarCraft 3 / Аура промахов
» WarCraft 3 / Проблема в редакторе кампаний
» WarCraft 3 / Изменение высоты юнита
» WarCraft 3 / Скорость дамми юнита
» WarCraft 3 / Типы Атаки и Защиты
» WarCraft 3 / Видно всех на карте
» WarCraft 3 / Проблема с MdlVis
» WarCraft 3 / Стандартные способности
» WarCraft 3 / Редактор закрывается после сохранения карты
» WarCraft 3 / Контролировать всех на карте
» WarCraft 3 / Краш